/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package democlient;
import java.net.*;
/* The java.io package contains the basics needed for IO operations. */
import java.io.*;
/**
 *
 * @author hpfamily
 */
public class Main {

        public  Socket client;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
         String host = "localhost";
         int port = 3200;
         String pass ="";

         try
         {
//kết nối đến server
             Socket connection = new Socket(host, port);
             System.out.println("SocketClient initialized");


//nhận lời thông báo kết nối thành công từ server
             String receiveM = new Main().ReceiveMess(connection);
             System.out.println(receiveM);

             //ghi ra màn hình câu thông báo nhập nick
             System.out.println("Nhap nickName...");


            //nhận nickname từ màn hình và xử lý lỗi
             int result;
             String userInput = new String();
             do
             {
                  result = 0;
                  BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
                  userInput = stdIn.readLine();
                  userInput.trim();
                  if(userInput.isEmpty())
                      result = 1;
             }while(result == 1);

//gửi nickName từ màn hình qua cho server
            new Main().SentMess(connection, userInput);

//nhận danh sách ngừoi chơi

             String nameMess = new Main().ReceiveMess(connection);
             System.out.println(nameMess);

// gửi tín hiệu bắt đầu
             String starstr = "start!";
            new Main().SentMess(connection, starstr);

//nhận chuỗi bài chia đầu tiên
            String chuoibai = new Main().ReceiveMess(connection);
            System.out.println(chuoibai);

            int turn = 13;
            for(int luot = 0; luot < turn; luot ++)
            {
                //kêu gọi chọn quân bài
                System.out.println("Nhap quan bai chon...");
                //lấy quân bài từ màn hình đã được chọn và xử lý nó

                BufferedReader ff = new BufferedReader(new InputStreamReader(System.in));
                String chonQB = ff.readLine();
//gửi quân bài đã chọn cho server
                new Main().SentMess(connection, chonQB);

//nhận 4 lá bài của 4 client mà server gửi trả lại
                String baiLuot = new Main().ReceiveMess(connection);
                System.out.println(chuoibai);

//gửi điểm của mình cho server
                int diem = 3;                             //giá trị demo
                String diemchoi = Integer.toString(diem);
                new Main().SentMess(connection, diemchoi);
//nhận chuỗi báo xong ván hoặc xong lượt
                String thongBao = new Main().ReceiveMess(connection);
                System.out.println(thongBao);

            }

        }
              catch (Exception g)
     {
         System.out.println("Exception: " + g);
     }
    }

        public String ReceiveMess(Socket socket)
    {
        BufferedReader in = null;
        String mess = "";
        try
        {
             in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             mess = in.readLine();


        }
         catch (Exception e)
         {
             System.out.println("error recieve");

         }




        return  mess;
    }

    public void SentMess(Socket socket, String string)
    {
        PrintWriter out = null;
        try
        {

             out = new PrintWriter(socket.getOutputStream(), true);
             out.println(string);



        }
        catch (Exception e)
         {

         }

    }

     public void ChiaBai(Socket connection, int chiaBai)
    {
            //nhan bai chia từ server và đưa ra màn hình
            try
            {
                String receivedMessage= new Main().ReceiveMess(connection);
                System.out.println("luot chia thu " + (chiaBai + 1) + ": " + receivedMessage);
            }

            catch (Exception g)
            {
              System.out.println("Exception: " + g);
            }

            //hiển thị yêu cầu nhập quân bài chọn
            System.out.println("Nhap quan bai chon...");

            //gửi quân bài chọn cho server
            try
            {
                BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
                String userInput;
                while ((userInput = stdIn.readLine()) != null)
                {
                    new Main().SentMess(connection, userInput);
                }
            }
            catch (Exception g)
            {
                System.out.println("Exception: " + g);
            }
      }


}
